The present disclosure relates generally to facilitating collaborative document development.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Various types of documents (e.g., word processing documents, spreadsheets, slides for slideshows, and so forth, may be generated or edited on various types of processor-based systems, such as computers. In certain instances, there may be a single author or editor entering text or formatting changes in a sequential manner, which can be implemented in a straight forward manner. In practice the changes made by a single user may be implemented by applying a change (i.e., a forward action or a forward case change operation) specified by the user and by applying, as needed, any undo or redo operations specified by the user.
However, in collaborative contexts, where changes may be concurrently generated by two or more authors, it may be difficult to apply and track the specified changes. In particular, changes applied concurrently or nearly concurrently may utilize additional types of operations to implement. For example, in addition to the single user operations (e.g., forward case change operations, undo operations, and so forth), additional operations specific to collaboration may be employed (e.g. rollback operations, reapply operations, and so forth). In particular, such collaboration specific operations are used to address instances where different users specify changes concurrently or nearly concurrently and a mechanism is needed to apply the changes in the proper order with respect to the document on which the users are collaborating.
Implementing such collaborative workflows may be difficult, however. In particular, different code pathways (e.g., four different code pathways) may be employed for each of the various types of operations, leading to substantial development and design complexity. Further, use of multiple code pathways may also increase testing complexity and difficulty, which may manifest as quality issues in the product.